package com.tjetc;

public class _3LogicOperator {
    public static void main(String[] args) {
        // 逻辑运算符 用在哪里？用于连接多个条件（多个关系表达式）
        // 与 或 非(!)

        // 与 （1）逻辑与 （2）短路与
        // 首先要知道判断规则 前提是 与： 同（两个关系表达式以上）真为真（总体结果为真） 其余都为假
        // 再判断是逻辑与还是短路与

        // 短路与 &&： 如果前面的条件能决定整体的条件，那么后面的条件不再执行 我们一般情况下用短路与 来提高效率
        // 逻辑与 &：不管前面的条件如何 最终所有条件都要执行
        int a = 1;
        System.out.println(1 > 2 && a++ < 1);
        System.out.println(1 > 2 & a++ < 1);
        System.out.println(a); // 1 2

        // 或 （1）逻辑或 （2）短路或
        // 首先要知道判断规则 前提是 或： 同（两个关系表达式以上）假为假（总体结果为假） 其余都为真
        // 再判断是逻辑或还是短路或

        // 短路或 ||： 如果前面的条件能决定整体的条件，那么后面的条件不再执行 我们一般情况下用短路或 来提高效率
        // 逻辑或 |：不管前面的条件如何 最终所有条件都要执行
        int b = 1;
        System.out.println(1 < 2 || b++ < 1);
        System.out.println(1 < 2 | b++ > 1);
        System.out.println(b); // 1 2


//        逻辑异或（相同为false 不同为true）^
        int c = 1;
        System.out.println(1 < 2 ^ c > 1);


    }
}
